In flash memories, data are recorded or erased in units of blocks (erasure blocks). On the other hand, in computer systems based on an MS-DOS (trademark) OS (Operating System), a FAT (File Allocation Table) file system is usually used for recording and erasing data on their hard disks, so that the FAT file system is also often used for recording data to flash memories.
In the FAT file system, data are managed in units of a cluster configured by a plurality of sectors such as 4, 8, 16, or 32 for example. Conventionally, the size of the cluster is greater than the size of the erasure block of flash memories.
Recently, however, as the flash memory storage capacities increase, the erasure block size comes to exceed the maximum cluster size.
As the erasure block size exceeds the cluster size, the data of a plurality of clusters come to be stored in one erasure block, for example. Consequently, rewriting the data of one cluster must once read the data of one erasure block which contains that cluster (the data of a plurality of clusters), store these pieces of data into memory, rewrite the data of the cluster concerned in memory, and then write the data of the plurality of clusters which contain that cluster to the initial one erasure block. This inevitably increases the time of the data write operation.
In order to manage flash memories having a large erasure block size, it is proposed to enlarge (over the erasure block size) the cluster size to be managed by the FAT file system.
However, this approach involves a special FAT file system, thereby losing the compatibility with general-purpose personal computers using the conventional FAT file system. In addition, because one cluster is occupied even by 1-byte data for example in the above-mentioned proposition, if the cluster size is enlarged and if 1-byte data are-recorded for example, the wasted areas increase, thereby presenting problems of a lowered memory usage efficiency for example.